

package com.scs.application.modules.settlement.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.scs.application.core.model.DataEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 病人消耗子表实体对象
 */
@TableName("dept_oprt_use_item")
@Data
@EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
@Accessors(chain = true)
public class DeptOprtUseItem extends DataEntity implements Serializable {

    /**
     * 主表id
     */
    private String deptOprtUseId;

    /** 明细id 物资系统消耗明细ID */
    private String dtlId;

    /**
     * StockId
     */
    private String stockId;

    /**
     * 原始入库单明细ID
     */
    @NotNull(message = "原始入库单明细ID不能为空")
    private String lineId;

    /**
     * 供应商ID
     */
    @NotNull(message = "供应商ID不能为空")
    private String supplierId;

    /**
     * 供应商名称
     */
    @NotBlank(message = "供应商名称不能为空")
    @Length(min = 1, max = 100, message = "供应商名称长度必须介于 1 和 100 之间")
    private String supplierName;

    /**
     * 物料ID
     */
    @NotNull(message = "物料ID不能为空")
    private String matrId;

    /**
     * 物料名称
     */
    @NotBlank(message = "物料名称不能为空")
    @Length(min = 1, max = 100, message = "物料名称长度必须介于 1 和 100 之间")
    private String matrName;

    /**
     * 物料品规
     */
    @NotBlank(message = "物料品规不能为空")
    @Length(min = 1, max = 100, message = "物料品规长度必须介于 1 和 100 之间")
    private String matrSpec;

    /**
     * 包装单位
     */
    @NotBlank(message = "包装单位不能为空")
    @Length(min = 1, max = 10, message = "包装单位长度必须介于 1 和 10 之间")
    private String packageUnit;

    /**
     * 包装数量
     */
    @NotNull(message = "包装数量不能为空")
    private Double packageQty;

    /**
     * 单品价格
     */
    @NotNull(message = "单品价格不能为空")
    private Double skuPrice;

    /**
     * 单品数量
     */
    @NotNull(message = "单品数量不能为空")
    private Double skuQty;

    /**
     * 金额
     */
    @NotNull(message = "金额不能为空")
    private Double amount;

    /**
     * 批次
     */
    @NotBlank(message = "批次不能为空")
    @Length(min = 1, max = 30, message = "批次长度必须介于 1 和 30 之间")
    private String lot;

    /**
     * 效期
     */
    @NotNull(message = "效期不能为空")
    private java.util.Date expDate;

    /**
     * 生产日期
     */
    private java.util.Date mfgDate;

    /**
     * sn
     */
    @Length(max = 30, message = "sn长度必须介于 0 和 30 之间")
    private String sn;

    /**
     * rfid
     */
    @Length(max = 30, message = "rfid长度必须介于 0 和 30 之间")
    private String rfid;

    /**
     * udi
     */
    @Length(max = 50, message = "udi长度必须介于 0 和 50 之间")
    private String udi;

    /**
     * 是否寄售
     */
    @NotNull(message = "是否寄售不能为空")
    private Integer flagConsignment;

    /**
     * 是否一物一码
     */
    @NotNull(message = "是否一物一码不能为空")
    private Integer flagOmoc;

    /**
     * 备注
     */
    @Length(max = 100, message = "备注长度必须介于 0 和 100 之间")
    private String remark;

    /**
     * 单品单位
     */
    @NotBlank(message = "单品单位不能为空")
    @Length(min = 1, max = 10, message = "单品单位长度必须介于 1 和 10 之间")
    private String skuUnit;

    /**
     * 最后修改日期
     */
    private java.util.Date mdate;

    /**
     * 是否唯一码管理
     */
    private Integer flagUniqueCode;

    /**
     * 注册证号
     */
    @Length(max = 100, message = "注册证号长度必须介于 0 和 100 之间")
    private String certificateNo;

    /**
     * 厂商
     */
    @Length(max = 200, message = "厂商长度必须介于 0 和 200 之间")
    private String mfgName;

    /**
     * 厂商
     */
    @Length(max = 200, message = "厂商长度必须介于 0 和 200 之间")
    @TableField(exist = false)
    private String busDate;

}
